Lab8


4531113021_4531114621  นาย สิทธิศักดิ์ เกียรติเฟื่องฟู และ นาย สุรพงศ์ เปียปั่น (3/9/2545 (11:43:52))
(SM=1, CM=20, ST=7, KY=0, TR=00:05)

TestScript
Mini-Quiz :  (0.0 คะแนน)

JLab>java Selftest
>>JLabIO->recripocate : ok
>>JLabIO->recripocate : ok
>>JLabIO->multiply : ok
>>JLabIO->multiply : ok
>>JLabIO->multiply : ok
>>JLabIO->multiply : ok
>>JLabIO->addMatrix : Exception : java.lang.NullPointerException
>>JLabIO->addMatrix : java.lang.NullPointerException
	at Selftest.main(Selftest.java:102)
java.lang.NullPointerException
	at Selftest.main(Selftest.java:102)
Exception : java.lang.NullPointerException

>>JLab:<POINT>6</POINT>

JLab>

ได้ 6 คะแนน
Source Code
// 2110101 : Lab8 (2545)
// dept. of computer engineering
// Chulalongkorn Univ.

import jlab.JLabIO;

public class Rational {
  int numerator;
  int denominator;

  //--------------------------------------------------------
  // an object method returning the recripocal of "this"
  // rational number.
  public Rational recripocate() {
    Rational recrip = new Rational (this.denominator, this.numerator);
    return (recrip);
    
  }
  //--------------------------------------------------------
  // an object method returning the result of "this"
  // rational number multiplied by a.
  public Rational multiply(Rational a) {
    a = new Rational (a.numerator, a.denominator);
    Rational b = new Rational (this.numerator, this.denominator);
    Rational c = new Rational (a.numerator, b.denominator);
    Rational d = new Rational (b.numerator, a.denominator);
    Rational mulRational = new Rational(c.numerator * d.numerator, c.denominator * d.denominator);
    return mulRational;

  }
  //--------------------------------------------------------
  // a class method for multiplying two matrices of rational
  // numbers (matrices a and b).
  public static Rational[][] mulMatrix(Rational[][] a, Rational[][] b) {
/*    int i, j, k, l;
      a = new Rational[i][j];
      b = new Rational[k][l];
    Rational[][] mulRationalMatrix = new Rational[a.length][b[0].length];
      for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < b[i].length; j++) {
          mulRationalMatrix[i][j] = 0;
            for (int k = 0; k < b.length; k++) {
              mulRationalMatrix[i][j] += a[i][k].mulRational(b[i][k]);
              }
            }
*/          
    return null;

  }
  //--------------------------------------------------------
  // you can use the main method for your own testing (optional).
  public static void main(String[] args) {
    



  }
  //--------------------------------------------------------
  public Rational() {
    this(0, 1);
  }
  public Rational(int n, int d) {
    int g = gcd(n, d);
    n = n / g;
    d = d / g;
    this.numerator = n;
    this.denominator = d;
  }
  public Rational add(Rational a) {
    int g = gcd(this.denominator, a.denominator);
    int d = this.denominator / g * a.denominator;
    int n = this.numerator * d / this.denominator +
            a.numerator * d / a.denominator;
    return new Rational(n, d);
  }
  public String toString() {
    return this.numerator + "/" + this.denominator;
  }
  public static int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
  }
}